package javaTrader;

import java.util.ArrayList;

public class Historique {
	private ArrayList<Devise> devises;
	
	//initialisation
	public Historique()
	{
		devises = new ArrayList<Devise>();
	}
	
	//ajoute une valeur a l'historique en empechant les accés concurrent
	public synchronized void ajouter(Devise dev)
	{
		Devise de = new Devise(dev);
		devises.add(de);
	}
	
	//recupere une liste contenant les (nombre) valeurs de l'offre
	public ArrayList<Float> getOffre(int nombre)
	{
		//tableau de retour
		ArrayList<Float> offre = new ArrayList<Float>();
		
		int debut;
		int fin;
		//si on ne dispose pas du nombre de case neccesaire n=5 - s=12
		if (devises.size() < nombre)
		{
			nombre = devises.size();
			debut = 0;
			fin = nombre;
		}
		else
		{
			debut = devises.size() - nombre; //deb = 12-5 = 7
			fin = devises.size();			// fin = 12
		}
		
		
		
		
		//on recupere les valeurs de la paires
		for(int i = debut; i < fin;i++)
		{
			offre.add(Float.valueOf(devises.get(i).getOffre()));
		}
		
		return offre;
	}
	
	//recupere une liste contenant les (nombre) valeurs de l'offre
		
	public ArrayList<Float> getDemande(int nombre)
	{
		//tableau de retour
		ArrayList<Float> demande = new ArrayList<Float>();
		
		//si on ne dispose pas du nombre de case neccesaire
		if (devises.size() < nombre)
		{
			nombre = devises.size();
		}
		
		//on recupere les valeurs de la paire
		for(int i = 0; i < nombre;i++)
		{
			demande.add(Float.valueOf(devises.get(i).getDemande()));
		}
		
		
		return demande;
	}
	
	//getter et setter
	public ArrayList<Devise> getDevise()
	{
		return this.devises;
	}
	
	
}
